package com.example.li_han.service;

import com.example.li_han.dao.NewsDao;
import com.example.li_han.pojo.News;
import java.util.*;

/**
 * 新闻业务服务类
 * 负责处理新闻相关的业务逻辑，调用DAO层完成数据操作
 */
public class NewsService {
    private NewsDao newsDao = new NewsDao();

    //获取全部内容
    public List<News> getAllNews(int currentPage, int pageSize) {
        return newsDao.getAllNews(currentPage, pageSize);
    }

    /**
     * 根据新闻ID获取新闻详情（同时更新浏览量）
     * @param newsId 新闻ID
     * @return 新闻对象
     */
    public News getNewsInfo(int newsId) {
        // 先增加浏览量，再获取新闻详情
        newsDao.updateViewCount(newsId);
        return newsDao.getNewsInfo(newsId);
    }

    //添加新闻
    public int addNews(News news) {
        return newsDao.addNews(news);
    }

    public List<News> getTopNews() {
        return newsDao.findTopNews();
    }

    /**
     * 根据typeName查询对应的typeId（新增方法，关键修复）
     * 用于添加新闻时关联分类ID
     */
    public int getTypeIdByTypeName(String typeName) {
        return newsDao.getTypeIdByTypeName(typeName);
    }


    /**
     * 单个删除
     */
    public int deleteNewsById(int newsId) {
        return newsDao.deleteNewsById(newsId);
    }

    /**
     * 批量删除 - 内部调用统一删除方法
     */
    public int deleteBatchNews(List<Integer> ids) {
        return newsDao.deleteBatchNews(ids);
    }

    public int getTotalNewsCount() {
        return newsDao.getTotal();
    }

    public List<News> getNewsByType(String newsType) {
        return newsDao.getNewsByType(newsType);
    }

    public int editNews(News news) {
        return newsDao.editNewsById(news);
    }
}